home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir38 / vga_doc2.zip / PARADISE.TXT < prev    next >
Text File  |  1993-01-22  |  14KB  |  361 lines

  1.   Paradise/Western Digital Super VGA Chips.
  2.  
  3.            Max mem   Max 16col  256 col
  4.     PVGA1A     512k/1M     800x600   640x480
  5.     WD90C00    512k/1M    1024x768   800x600   also known as PVGA1B
  6.     WD90C10    256k        640x480   320x200
  7.     WD90C11    512k       1024x768   800x600
  8.     WD90C2x                800x600   640x480?  LCD/plasma controller derived
  9.                            from WD90C00 ?                   
  10.     WD90C30    1M         1024x768  1024x768   (D-step)
  11.     WD90C31    1M        1280x1024  1024x768   (1DW - accelerator) 
  12.  
  13.   94h (W): Setup Register     (Micro Channel)
  14.  
  15.  102h (R/W): VGA Sleep Register    (setup mode only)
  16.  bit   0  VGA enabled if set.
  17.      1-7  Reserved.
  18.  Note: this register can only be accessed in setup mode.
  19.  
  20.  3C3h (W): Global Enable Register
  21.  bit   0  VGA Motherboard Enable if set
  22.  
  23.  3C4h index  3  (R/W): Reconfigured Character Map Select
  24.  bit 0-2  Offset of character map in plane 2/3 in 8k blocks
  25.      3-4  Character map select from plane:
  26.         0: plane 2
  27.         1: plane 2 if attr. bit 3 set, plane 3 else
  28.         2: plane 3 if attr. bit 3 set, plane 2 else
  29.         3: plane 3
  30.  
  31.  3C4h index  6  (R/W):
  32.       used in WD90C1x.
  33.   
  34.  3C4h index  7  (R/W): Display Configuration Status (WD90C1x Only)
  35.  bit   0  (R) Monitor type
  36.        1  (R) EGA emulation if set
  37.        2  (R) 6845 compatibility if set
  38.        3  (R) Color mode if set
  39.      4-7  Scratch Pad
  40.  
  41.  3C4h index 10h (R/W):                              (WD90C11 Only)
  42.  bit 2  (WD90C11 Only)
  43.  
  44.  3C4h index 11h (R/W): System Control Interface     (WD90C1x Only)
  45.  bit   0  (WD90C1x Only) 16 bit access to CRTC, Graphics
  46.       Controller and Sequencer Registers if set
  47.        1  (WD90c1x Only) 16 bit access to Attribute Registers if set.
  48.       If so 3C0h is index and 3C1h is data port.
  49.        2  Enable Write buffer if set
  50.      3-4  Enhanced speed depending of host bus speed:
  51.        0 for 12MHz, 1 for 10 MHz, 2,3 for 8 MHz
  52.        5  Enhanced text mode operations if set
  53.        6  Enhanced operation on blank lines if set
  54.        7  (WD90C1x Only) If set Bank reg PR0A is used for read cycles
  55.     and PR0B for write cycles, else PR0B is used for A000h-A7FFh
  56.     and PR0A for A800h-AFFFh.
  57.  
  58.  3C4h index 12h (R/W): Miscellaneous Control #4      (WD90C1x Only)
  59.  bit   6  Enable Cursor Blinking if set
  60.        7  Enable External Sync
  61.  
  62.  3C4h index 14h (R/W):                                (WD90C30 only)
  63.  bit 0-3
  64.  
  65.  3CEh index  9  (R/W): PR0A Address Offset A
  66.  bit 0-6  (<WD90C30) Added to bit 12-18 of video memory address if
  67.              Bank A selected. (Reads if 3C4h index 11h bit 7 set,
  68.              A800h-AFFFh if 3CEh index Bh bit set and 64k config
  69.              B000h-BFFFh if 128k config. A000h-AFFFh else).
  70.  bit 0-7   (WD90C30) same but bit 12-19 rather than 12-18.        
  71.  
  72.  3CEh index  Ah (R/W): PR0B Address Offset B
  73.  bit 0-6  (<WD90C30) Added to bit 12-18 of video memory address if
  74.              Bank B selected. (Writes if 3C4h index 11h bit 7 set,
  75.              A000h-A7FFh if 3CEh index Bh bit 3 set and 64k config,
  76.              A000h-AFFFh if 128k config).
  77.  bit 0-7   (WD90C30) Same but bit 12-19 rather than 12-18.
  78.  
  79.  3CEh index  Bh (R/W): PR1 Memory Size
  80.  bit   0  Enable on card ROM if set
  81.        1  Select 16 bit ROM if set
  82.        2  Select 16 bit Memory  if set
  83.        3  PROB enabled if set, else use PR0A for both banks
  84.      4-5  Memory Map.  0=A000-BFFFh standard VGA,
  85.                1=0-3FFFFh, 2=0-7FFFFh and 3=0-FFFFFh
  86.      6-7  Installed memory:
  87.         0  256k VGA standard
  88.         1  256k PVGA bank switching
  89.         2  512k do
  90.         3    1M do
  91.  
  92.  3CEh index  Ch (R/W): PR2 Video Configuration
  93.  bit   0  Force VCLK (overrides SQE1 bit 3).
  94.        1  Third Clock Select Line VCLK2
  95.      2,5  Character Map Select/Underline
  96.        0  Characters are taken from plane 2
  97.        1  do, but characters are underlined if
  98.           bit 0 of the characters attribute is set.
  99.        2  Characters are taken from plane 3.
  100.        3  If bit 3 of the characters attribute is set the
  101.           character is taken from plane 3, else from plane 2.
  102.      3,4  Character Clock Period Control
  103.        0  IBM VGA character Clock (8 or 9 dots wide).
  104.        1  7 dots (used for 132 character modes).
  105.        2  9 dots
  106.        3  10 dots
  107.       Selecting 10 dots/character modifies the horizontal PEL
  108.       panning register (3C0h index 13h).
  109.        5  Character Map Select.
  110.        6  6845 Compatibility (6845 if set, EGA/VGA if clear).
  111.        7  AT&T/M24 Mode Enable, 400 line enable
  112.  
  113.  3CEh index  Dh (R/W): PR3 CRTC Control
  114.  bit   0  Lock Vertical Timing
  115.        1  Lock Prevention. Prevent locking through the Vertical
  116.       Retrace register (3d4h index 11h bit 7).
  117.        2  Multiply Cursor Start, Cursor Stop, Preset Row Scan
  118.       and Maximum Scan Line registers by 2
  119.      3-4  bit 16,17 of CRTC Display Start Address
  120.        5  Lock Horizontal Timing
  121.        6  Lock HSYNC Polarity
  122.        7  Lock VSYNC Polarity
  123.  
  124.  3CEh index  Eh (R/W): PR4 Video Control
  125.  bit   0  Extended 256 color Shift register Control. Configures
  126.       the video shift registers for extended 256 color mode.
  127.        1  EGA compatibility. Disables reads of all registers
  128.       that are writeonly on the EGA, and of PR0-5.
  129.        2  Lock internal Palette and Overscan registers
  130.        3  Override CGA Enable Video bit.
  131.       Overrides the CGA "enable video" bit 3 of 3D8h
  132.        4  Tri-state Memory Control Outputs
  133.        5  Tri-state Video outputs
  134.        6  PCLK=VCLK
  135.        7  BLNK/Display Enable
  136.  
  137.  3CEh index  Fh (R/W): PR5 General Purpose Status and PR Register
  138.  bit 0-2  Extended registers PR0-4 Unlocked if set to 5
  139.        4  Read protect PR0-4 if set.
  140.        7  Multisync if set, fixed frequency else.
  141.  
  142.  3d4h index 29h (R/W): PR10 Unlock PR11-17 Registers (WD90Cxx Only)
  143.  bit 0-2  Write of PR11-18 enabled if set to 5
  144.      3,7  Read of PR11-18 enabled if 3 clear and 7 set
  145.  
  146.  3d4h index 2Ah (R/W): PR11 EGA Switches             (WD90Cxx Only)
  147.  bit   0  Lock 8/9 Dot Character Clock.
  148.       Inhibits writes to 3C4h index 1 bit 0.
  149.        1  Lock Graphics and Sequencer Screen Control
  150.       Inhibits write to 3CEh index 5 bit 5-6, 3C4h index 1
  151.       bit 2-5 and 3C4h index 3 bit 0-5.
  152.        2  Lock Clock Select
  153.        3  EGA Emulation on Analog Display
  154.      4-7  EGA Switch 1-4
  155.  
  156.  3d4h index 2Bh (R/W): PR12 Scratch Pad Register     (WD90Cxx Only)
  157.  bit 0-7  Reserved
  158.  
  159.  3d4h index 2Ch (R/W): PR13 Interlace H/2 Start      (WD90Cxx Only)
  160.  bit 0-7  Interlace H/2 Start. Adjusts Horizontal Sync
  161.       for interlace.
  162.  
  163.  3d4h index 2Dh (R/W): PR14 Interlace H/2 End        (WD90Cxx Only)
  164.  bit 0-4  Interlace H/2 End. Adjusts horizontal Sync width
  165.        5  Interlace enable
  166.        6  Vertical Double Scan for EGA on PS/2 Display
  167.        7  Enable Vertical retrace interrupts if set
  168.  
  169.  3d4h index 2Eh (R/W): PR15 Miscellaneous Control #1 (WD90Cxx Only)
  170.  bit   0  Disable borders if set
  171.        1  Select Display Enable Timing
  172.        2  Enables page mode addressing in alpha modes if set
  173.        3  Interlace comp. with 8514/A timing if set.
  174.        4  VCLK=MCLK. If set MCLK is used for all video timings.
  175.        5  VCLK1,VLKC2 Latched Outputs.
  176.        6  Low VCLK. Set if VCLK is much slower than MCLK.
  177.        7  Enable read of 46E8h
  178.  
  179.  3d4h index 2Fh (R/W): PR16 Miscellaneous Control #2 (WD90Cxx Only)
  180.  bit   1  Standard VGA memory if set
  181.      3-4  bit 16,17 of CRTC Address Counter Offset
  182.      5-6  CRTC Address Counter Width
  183.        0= 256k, 1=128K, 2=64K
  184.  
  185.  3d4h index 30h (R/W): PR17 Miscellaneous Control #3 (WD90Cxx Only)
  186.  bit   0  Maps out ROM at C600h-C67Fh if set
  187.        2  (WD90C1x Only) Enables 64k ROM at C000h-CFFFh if set
  188.        3  (WD90C1x Only) Maps out ROM at C600h-C6FFh if set
  189.  
  190.  3d4h index 32h (R/W):                               (WD90C2x Only)
  191.  bit   0
  192.        5  
  193.  
  194.  3d4h index 34h (R/W):                               (WD90C2x Only)
  195.  
  196.  3d4h index 37h (R/W):                               (WD90C31 Only) 
  197.  bit 0-7  031h for the WD90C31.
  198.  
  199.  46E8h (R/W): Global Enable Register           (AT only)
  200.  bit 0-2  BIOS ROM page select (8 pages of 4K each).
  201.        3  Adapter VGA enabled if set
  202.        4  If set the VGA is in Setup mode, where 102h and 46E8h
  203.       are the only ports responding.
  204.       Wake Up port at 102h responds only if this bit set.
  205.  Note: This register is also addressed at 56E8h, 66E8h and 76E8h.
  206.        Register only readable if 3d4h index 2Eh bit 7 set
  207.  
  208.     3C4h index 6 used in WD90C1x.
  209.     3d4h index 31h-3fh used in WD90C1x.
  210.  
  211.  
  212.   Bank Switching:
  213.  
  214.     Bank switching happens by adding the bank register to bit 12-19
  215.     of the address, resulting in the window starting on a 4k boundary.
  216.  
  217.     Two different bank registers can be used either as Read/Write
  218.     banks (WD90C1x) or as two different windows each 32k/64k big.
  219.  
  220.  
  221.   Memory:
  222.  
  223.    $C000:$09  string   BIOS date 
  224.    $C000:$35  1 byte   BIOS version 
  225.    $C000:$7D  4 bytes  $3ED414756   ('VGA=')
  226.  
  227.  
  228.   ID Paradise/WD Super VGA Chip set:
  229.  
  230.     old:=rdinx($3ce,15);
  231.     modinx($3ce,15,$17,0);   {Lock registers}
  232.  
  233.     if not testinx2($3ce,9,$7f) then
  234.     begin
  235.       modinx($3ce,15,$17,5);      {Unlock again}
  236.       if testinx2($3ce,9,$7f) then
  237.       begin
  238.     old2:=rdinx(base,$29);
  239.     modinx(base,$29,$9f,$85);  {Unlock WD90Cxx registers}
  240.     if not testinx(base,$2b) then 'Paradise PVGA1A'
  241.     else begin
  242.       old1:=rdinx($3c4,6);
  243.       wrinx($3c4,6,$48);
  244.       if not testinx2($3c4,7,$f0) then 'Western Digital WD90C00'
  245.       else if not testinx($3c4,16) then
  246.       begin
  247.         'Western Digital WD90C2x';
  248.         wrinx(base,$34,$a6);
  249.         if (rdinx(base,$32) and 32)<>0 then wrinx(base,$34,0);
  250.       end
  251.       else if testinx2($3c4,20,15) then
  252.       begin  
  253.         if rdinx(base,$37)=$31 then 'Western Digital WD90C31'
  254.                    else 'Western Digital WD90C30';  
  255.       end 
  256.       else if not testinx2($3c4,16,4) then 'Western Digital WD90C10'
  257.                       else 'Western Digital WD90C11';
  258.     wrinx($3c4,6,old1);
  259.       end;
  260.       wrinx(base,$29,old2);
  261.     end;
  262.     wrinx($3ce,15,old);
  263.     
  264.  
  265.  
  266.   Video Modes:
  267.  
  268.     54h  T   132   43  16  (7x9 or 8x9)
  269.     55h  T   132   25  16  (7x9 or 8x9)
  270.     56h  T   132   43   4  (7x9 or 8x9)
  271.     57h  T   132   25   4  (7x9 or 8x9)
  272.     58h  G   800  600  16  planar
  273.     59h  G   800  600   2  odd/even  **** See note    Not on newer boards?
  274.     5Ah  G  1024  768   2  odd/even  **** See note    Not on newer boards?
  275.     5Bh  G  1024  768   4  packed    **** See note    Not on newer boards?
  276.     5Ch  G   800  600 256  packed    WD90C11/3x Only
  277.     5Dh  G  1024  768  16  planar
  278.     5Eh  G   640  400 256  packed
  279.     5Fh  G   640  480 256  packed
  280.     60h  G  1024  768 256  packed         WD90c3x only
  281.     61h  G   640  400 32k  Sierra 15bit   WD90c31 only
  282.     62h  G   640  480 32k  Sierra 15bit   WD90c3x only
  283.     63h  G   800  600 32k  Sierra 15bit   WD90c3x only
  284.     64h  G  1280 1024  16  planar         WD90c31 only
  285.     66h  T    80   50  16  (8x8)
  286.     67h  T    80   43  16  (8x8)
  287.     68h  G   320  200 32k  Sierra 15bit   WD90c31 only
  288.     69h  T   132   50  16  (8x8)
  289.     6Ah  G   800  600  16  Planar
  290.     6Ch  G  1280  960  16  planar
  291.  
  292.  
  293.     Mode 5Bh  1024x768 4 color.
  294.       2 bit per pixel packed mode.
  295.       Pixels start in bit 6-7.
  296.  
  297.     Mode 59h   800x600 2 color and
  298.     Mode 5Ah  1024x768 2 color.
  299.       One bit per pixel odd/even mode
  300.       Pixels 0-7 are in plane 0, 8-15 in plane 1.
  301.  
  302.  
  303.  
  304.   Bios extensions:
  305.  
  306.  
  307. ----------10007E-----------------------------
  308. INT 10 - VIDEO - Paradise VGA, AT&T VDC800 - SET SPECIAL MODE
  309.     AX = 007Eh
  310.     BX = horizontal dimension of the desired mode
  311.     CX = vertical dimension of the desired mode
  312.          Both BX,CX in dots for graph modes, chars for alpha modes
  313.     DX = Number of colors desired (0000h for monochrome)
  314. Return: BH = 7Eh if successful (Paradise VGA)
  315.     AL = 7Eh if successful (AT&T VDC800)
  316. ----------10007F-----------------------------
  317. INT 10 - VIDEO - Paradise ....   EXTENDED MODE SET
  318.     AX = 007Fh
  319.     BH = 00h   set VGA operation
  320.     BH = 01h   set non-VGA operation
  321.            color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation
  322.            monochrome mode 7 will set non-VGA MDA/Hercules operation
  323.     BH = 02h   Query mode status
  324.            Return: BL = 00h if operating in VGA mode, 01h if non-VGA mode
  325.                CH = total video RAM size in 64k byte units
  326.                CL = video RAM used by the current mode
  327.     BH = 03h   Lock current mode. Allows current mode
  328.            (VGA or non-VGA) to survive re-boot.
  329.     BH = 04h   Set non-VGA MDA/Hercules Mode
  330.     BH = 05h   Set non-VGA CGA Mode
  331.     BH = 06h   Set VGA Mono Mode
  332.     BH = 07h   Set VGA Color Mode
  333.     BH = 09h..0Fh   Write Paradise Register
  334.             BL = New value of PR register
  335.     BH = 19h..1Fh   Read Paradise Register
  336.             Return: BL = Value of register
  337.             BH: (Read) BH: (Write)   Register
  338.             19h        09h          PR0A     Port 3CEh index 09h
  339.             1Ah        0Ah          PR0B     Port 3CEh index 0Ah
  340.             1Bh        0Bh          PR1      Port 3CEh index 0Bh
  341.             1Ch        0Ch          PR2      Port 3CEh index 0Ch
  342.             1Dh        0Dh          PR3      Port 3CEh index 0Dh
  343.             1Eh        0Eh          PR4      Port 3CEh index 0Eh
  344.             1Fh        ---          PR5      Port 3CEh index 0Fh
  345.     BH = 20h   Emulate EGA with Analog Monitor   (WD90Cxx Chips Only)
  346.            BL=EGA Switches in Bit 0-3
  347.     BH = 29h..30h   Read Paradise Register       (WD90Cxx Chips Only)
  348.             Return: BL = Value of register
  349.             BH:    Register:
  350.             29h   PR10     Port 3CEh index 29h
  351.             2Ah   PR11     Port 3CEh index 2Ah
  352.             2Bh   PR12     Port 3CEh index 2Bh
  353.             2Ch   PR13     Port 3CEh index 2Ch
  354.             2Dh   PR14     Port 3CEh index 2Dh
  355.             2Eh   PR15     Port 3CEh index 2Eh
  356.             2Fh   PR16     Port 3CEh index 2Fh
  357.             30h   PR17     Port 3CEh index 30h
  358.  
  359. Return: AL = 7Fh  If successful  (AT&T VDC600)
  360.     BH = 7Fh  If valid call (Paradise/Western Digital)
  361.